package com.learn.spring5.testdemo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.learn.spring5.autowire.Emp;
import com.learn.spring5.bean.Orders;
import com.learn.spring5.collectiontype.Book;
import com.learn.spring5.collectiontype.Course;
import com.learn.spring5.collectiontype.Stu;
import com.learn.spring5.factorybean.MyBean;

public class TestSpring5Demo1 {
	@Test
	public void testCollection1() {
		ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
		Stu stu = context.getBean("stu", Stu.class);
		stu.test();
	}

	@Test
	public void testCollection2() {
		ApplicationContext context = new ClassPathXmlApplicationContext("bean2.xml");
		Book book = context.getBean("book", Book.class);
		book.test();
	}

	@Test
	public void testCollection3() {
		ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");
		// MyBean myBean = context.getBean("myBean", MyBean.class);
		Course course = context.getBean("myBean", Course.class);
		System.out.println(course);
	}

	@Test
	public void testBean() {
		ApplicationContext context = new ClassPathXmlApplicationContext("bean4.xml");
		Orders orders = context.getBean("orders", Orders.class);
		System.out.println("第四步 获取创建bean实例对象");
		System.out.println(orders);

		// 手动让bean实例销毁
		((ClassPathXmlApplicationContext) context).close();
	}
	
	@Test
	public void testBean2() {
		ApplicationContext context = new ClassPathXmlApplicationContext("bean5.xml");
		Emp emp = context.getBean("emp", Emp.class);
		System.out.println(emp);
	}
}
